package bufferedstream;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/**
 * BufferedReader:高效字符输入流
 * 构造方法:
 * BufferedReader(Reader in)
 *    创建一个使用默认大小输入缓冲区的缓冲字符输入流。
 * 成员方法:
 *   int read()
 *       读取单个字符。
 *    String readLine()
 *       读取文件中一行数据,不包括每行末尾的换行符
 * BufferedReader底层会使用默认长度为8192的字符数组作为缓冲区,通过BufferedReader调用read()方法
 * 会将文件中的字符读取到底层默认长度为8192的字符数组中去,read()返回值其实都是从这个数组中的取得字符
 */
public class BufferedReaderDemo01 {
	public static void main(String[] args) throws IOException {
		//method01();
		BufferedReader br = new BufferedReader(new FileReader("day24/9.txt"));
	/*	System.out.print(br.readLine());
		System.out.print(br.readLine());*/

	/*	System.out.println(br.readLine());
		System.out.println(br.readLine());
		System.out.println(br.readLine());
		System.out.println(br.readLine());
		System.out.println(br.readLine());//当readLine()方法返回null,说明已经读取到文件末尾
		System.out.println(br.readLine());*/

		String line;
		while ((line = br.readLine()) != null) {
			System.out.println(line);
		}

		br.close();
	}

	private static void method01() throws IOException {
		BufferedReader br = new BufferedReader(new FileReader("day24/9.txt"));
		int ch;
		while ((ch = br.read()) != -1) {
			//System.out.println((char) ch);//每打印一次在该行末尾追加一个换行
			System.out.print((char) ch);//每打印一次,不会该行末尾追加换行
		}
		br.close();
	}
}
